package inet.app.view.activity;

import inet.app.R;
import inet.app.common.XoSoConstants;
import inet.app.controller.connect.JsonParser;
import inet.app.controller.parser.Parser_Doso;
import inet.app.controller.parser.Parser_ListtinhSC;
import inet.app.controller.request.Request;
import inet.app.model.object.Doso_Item;
import inet.app.model.object.ListTinh_Sc_Item;
import inet.app.model.util.Util;

import java.util.ArrayList;

import android.app.Dialog;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.KeyEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.Window;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.Spinner;
import android.widget.TextView;

/*public class DoSoActivity extends BaseActivity*/
public class DoSoActivity extends BaseFragmentActivity {
	
	private Button btChon;
	private EditText etCouple;
	private TextView tvSpinner,tvTitle;
	private Spinner spTinh;
	private String code,name;
	private Dialog kqds_dl;
	private Request request = new Request();
	private Parser_ListtinhSC parser = new Parser_ListtinhSC();
	private ArrayList<ListTinh_Sc_Item> arraylist = new ArrayList<ListTinh_Sc_Item>();
	private Doso_Item doso_item = new Doso_Item();
//	private ArrayList<String> list_tentinh = new ArrayList<String>();
	private ArrayList<String> list_code = new ArrayList<String>();
	private String[] list_tentinh = new String[] { "Thủ Đô", "TP HCM", "An Giang",
			"Bình Dương", "Bình Phước", "Bạc Liêu", "Bến Tre", "Cà Mau",
			"Cần Thơ", "Hậu Giang", "Kiên Giang", "Long An", "Sóc Trăng",
			"Tiền Giang", "Trà Vinh", "Tây Ninh", "Vĩnh Long", "Vũng Tàu",
			"Đà Lạt", "Đồng Nai", "Đồng Tháp", "Bình Thuận", "Bình Định",
			"Đắk Lắk", "Gia Lai", "Khánh Hòa", "Kon Tum", "Ninh Thuận",
			"Phú Yên", "Quảng Bình", "Quảng Nam", "Quảng Ngãi", "Quảng Trị",
			"Thừa Thiên Huế", "Đà Nẵng", "Đắc Nông" };
	// Dialog
	private Button btThongkeLT, btThongkeDB;
	private LinearLayout llTK30day,llNhip;
	private TextView tvDau,tvDuoi,tvDau1, tvTong,tvDau2, tvDuoi1, tvDuoi2, tvTong1, tvTong2,
			tvfotter,tvSoDd;

	 private TextView tvCountXh,tvDate,tvNhip,tvXhDau30,tvLastDateDau30;
	 private TextView tvXhDuoi30,tvLastDateDuoi30,tvXhTong30,tvLastDateTong30,tvCoupleDetail;
	@Override
	public void onCreate(Bundle savedInstanceState) {

		super.onCreate(savedInstanceState);
		setContentView(R.layout.doso_screen);
		initBase();
		initUI();
		implementUI();
	}

	private void initUI() {

		tvTitle =(TextView) findViewById(R.id.tvTitle);
		tvTitle.setText("Dò Số");
		tvfotter = (TextView) findViewById(R.id.tvfotter);
		final Animation text_animation = AnimationUtils.loadAnimation(this,
				R.anim.custom_text_animation);
		tvfotter.startAnimation(text_animation);
		tvfotter.setOnClickListener(new OnClickListener() {
			@Override
			public void onClick(View v) {

				Intent myWebLink = new Intent(
						android.content.Intent.ACTION_VIEW);
				myWebLink.setData(Uri.parse("http://m.ole.vn/"));
				startActivity(myWebLink);
			}
		});

		btChon = (Button) findViewById(R.id.btChon);
		tvSpinner = (TextView) findViewById(R.id.tvSpinner);
		etCouple = (EditText) findViewById(R.id.etCouple);
		spTinh = (Spinner) findViewById(R.id.sptinh);
//		sendRequest();
		AddSpinner();
	}

	private void implementUI() {

		tvSpinner.setOnClickListener(new OnClickListener() {
			@Override
			public void onClick(View v) {
				spTinh.performClick();
			}
		});

		btChon.setOnClickListener(new OnClickListener() {
			@Override
			public void onClick(View v) {
				pdia.show();
				if (!etCouple.getText().toString().equals("")&etCouple.getText().toString().length()>1) {
					 final Handler handler = new Handler() {
					 @Override
						 public void handleMessage(Message msg) {
							 super.handleMessage(msg);
							 if (msg.what == 0) {
							 String json = (String) msg.obj;
							 System.out.println("DƯC LIEU DO SO " + json);
							 pdia.dismiss();
							 Parser_Doso parser_doso = new Parser_Doso();
							 doso_item = parser_doso.getList(json);
							 if (doso_item != null) {
								pdia.dismiss();
								KqDs_Dialog(DoSoActivity.this,etCouple.getText().toString(),name,doso_item);
								kqds_dl.show();
								pdia.dismiss();
							 } else {
							 pdia.dismiss();
							 Util.showDialog(1, DoSoActivity.this);
							 }
							 } else if (msg.what == 1) {
							 pdia.dismiss();
							 Util.showDialog(1, DoSoActivity.this);
							 }
						 }
					
					 };
					 Thread thread = new Thread() {
					 public void run() {
						 JsonParser jParser = new JsonParser();
						 String jobject = jParser.getURL(request.getdoso(code,
						 etCouple.getText().toString()));
						 if (jobject != null) {
							 Message msg = handler.obtainMessage(0, jobject);
							 handler.sendMessage(msg);
						 } else {
							 Message msg = handler.obtainMessage(1);
							 handler.sendMessage(msg);
						 }
						
						 }
					 };
					 thread.start();
				} else {
					pdia.dismiss();
					Util.showDialog(7, DoSoActivity.this);
				}
			}
		});
	}

//	private void sendRequest() {
//
//		pdia.show();
//		arraylist = parser.getList(request.getlisttinhsc(date_current));
//		if (arraylist != null) {
//			for (int i = 0; i < arraylist.size(); i++) {
//				list_tentinh.add(arraylist.get(i).getName());
//				list_code.add(arraylist.get(i).getCode());
//			}
//			pdia.dismiss();
//			AddSpinner();
//		} else {
//			pdia.dismiss();
//			Util.showDialog(1, DoSoActivity.this);
//		}
//	}

	private void AddSpinner() {
		ArrayAdapter<String> arrayadapter_sptinh = new ArrayAdapter<String>(
				DoSoActivity.this, android.R.layout.simple_spinner_item,
				list_tentinh);
		arrayadapter_sptinh
				.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
		spTinh.setAdapter(arrayadapter_sptinh);
		spTinh.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
			public void onItemSelected(AdapterView<?> arg0, View v,
					final int pos, long id) {
				tvSpinner.setText(" " + list_tentinh[pos]);
				spTinh.setSelection(pos);
				switch (pos) {
				case 0:
					name = "Thủ Đô";
					code = "XSTD";
					break;
				case 1:
					name = "TP HCM";
					code = "XSHCM";
					break;
				case 2:
					code = "XSAG";
					name = "An Giang";
					break;
				case 3:
					code = "XSBD";
					name = "Bình Dương";
					break;
				case 4:
					code = "XSBP";
					name = "Bình Phước";
					break;
				case 5:
					code = "XSBL";
					name = "Bạc Liêu";
					break;
				case 6:
					code = "XSBT";
					name = "Bến Tre";
					break;
				case 7:
					code = "XSCM";
					name = "Cà Mau";
					break;
				case 8:
					code = "XSCT";
					name = "Cần Thơ";
					break;
				case 9:
					code = "XSHG";
					name = "Hậu Giang";
					break;
				case 10:
					code = "XSKG";
					name = "Kiên Giang";
					break;
				case 11:
					code = "XSLA";
					name = "Long An";
					break;
				case 12:
					code = "XSST";
					name = "Sóc Trăng";
					break;
				case 13:
					code = "XSTG";
					name = "Tiền Giang";
					break;
				case 14:
					code = "XSTV";
					name = "Trà Vinh";
					break;
				case 15:
					code = "XSTN";
					name = "Tây Ninh";
					break;
				case 16:
					code = "XSVL";
					name = "Vĩnh Long";
					break;
				case 17:
					code = "XSVT";
					name = "Vũng Tàu";
					break;
				case 18:
					code = "XSDL";
					name = "Đà Lạt";
					break;
				case 19:
					code = "XSDN";
					name = "Đông Nai";
					break;
				case 20:
					code = "XSDT";
					name = "Đồng Tháp";
					break;
				case 21:
					code = "XSBTH";
					name = "Bình Thuận";
					break;
				case 22:
					code = "XSBDH";
					name = "Bình Định";
					break;
				case 23:
					code = "XSDLK";
					name = "Đăk Lăk";
					break;
				case 24:
					code = "XSGL";
					name = "Gia Lai";
					break;
				case 25:
					code = "XSKH";
					name = "Khánh Hòa";
					break;
				case 26:
					code = "XSKT";
					name = "Kon Tum";
					break;
				case 27:
					code = "XSNT";
					name = "Ninh Thuận";
					break;
				case 28:
					code = "XSPY";
					name = "Phú Yên";
					break;
				case 29:
					code = "XSQB";
					name = "Quảng Bình";
					break;
				case 30:
					code = "XSQNM";
					name = "Quảng Nam";
					break;
				case 31:
					code = "XSQNI";
					name = "Quảng Ngãi";
					break;
				case 32:
					code = "XSQT";
					name = "Quảng Trị";
					break;
				case 33:
					code = "XSTTH";
					name = "Thừa Thiên Huế";
					break;
				case 34:
					code = "XSDNG";
					name = "Đà Nẵng";
					break;
				case 35:
					code = "XSDNO";
					name = "Đắc Nông";
					break;
				}
			}

			public void onNothingSelected(AdapterView<?> arg0) {
			}
		});
	}

	public boolean onKeyDown(int keyCode, KeyEvent event) {

		if (keyCode == KeyEvent.KEYCODE_BACK) {
			System.out.println("THOAT NHE");
			showQuitDialog(DoSoActivity.this);
			return true;
		}
		return super.onKeyDown(keyCode, event);
	}

	@Override
	public void onResume() {

		if (((MyApp) getApplication()).isKill()) {
			finish();
		}
		super.onResume();

	}

	public void KqDs_Dialog(Context c, String couple,String name,final Doso_Item doso_item) {
		
		kqds_dl = new Dialog(c);
		kqds_dl.requestWindowFeature(Window.FEATURE_LEFT_ICON);
		kqds_dl.getWindow().getAttributes().windowAnimations = R.style.DialogAnimation;
		kqds_dl.setTitle("Kết Quả Dò Số");
		kqds_dl.setContentView(R.layout.dialog_doso_detail);

		kqds_dl.getWindow().setTitleColor(XoSoConstants.Yellow1);
		kqds_dl.setFeatureDrawableResource(Window.FEATURE_LEFT_ICON,
				R.drawable.icon_kqxs);
		
		// Setup Dialog
		llNhip = (LinearLayout) kqds_dl.findViewById(R.id.llNhip);
		tvSoDd = (TextView) kqds_dl.findViewById(R.id.tvSoDd);
		btThongkeLT = (Button) kqds_dl.findViewById(R.id.btThongkeLT);
		btThongkeDB = (Button) kqds_dl.findViewById(R.id.btThongkeDB);
		llTK30day = (LinearLayout) kqds_dl.findViewById(R.id.llTK30day);
		tvDau= (TextView) kqds_dl.findViewById(R.id.tvDau);
		tvDau1 = (TextView) kqds_dl.findViewById(R.id.tvDau1);
		tvDau2 = (TextView) kqds_dl.findViewById(R.id.tvDau2);
		tvDuoi= (TextView) kqds_dl.findViewById(R.id.tvDuoi);
		tvDuoi1 = (TextView) kqds_dl.findViewById(R.id.tvDuoi1);
		tvDuoi2 = (TextView) kqds_dl.findViewById(R.id.tvDuoi2);
		tvTong = (TextView) kqds_dl.findViewById(R.id.tvTong);
		tvTong1 = (TextView) kqds_dl.findViewById(R.id.tvTong1);
		tvTong2 = (TextView) kqds_dl.findViewById(R.id.tvTong2);

		 tvCountXh = (TextView) kqds_dl.findViewById(R.id.tvCountXh);
		 tvDate = (TextView) kqds_dl.findViewById(R.id.tvDate);
		 tvNhip = (TextView) kqds_dl.findViewById(R.id.tvNhip);
		 tvXhDau30 = (TextView) kqds_dl.findViewById(R.id.tvXhDau30);
		 tvLastDateDau30 = (TextView)
		 kqds_dl.findViewById(R.id.tvLastDateDau30);
		 tvXhDuoi30 = (TextView) kqds_dl.findViewById(R.id.tvXhDuoi30);
		 tvLastDateDuoi30 = (TextView)
		 kqds_dl.findViewById(R.id.tvLastDateDuoi30);
		 tvXhTong30 = (TextView) kqds_dl.findViewById(R.id.tvXhTong30);
		 tvLastDateTong30 = (TextView)
		 kqds_dl.findViewById(R.id.tvLastDateTong30);

		 btThongkeLT.setBackgroundResource(R.drawable.tk_tab1_2);
		 btThongkeDB.setBackgroundResource(R.drawable.tk_tab2);
		 
		 llTK30day.setVisibility(View.VISIBLE);
		 llNhip.setVisibility(View.VISIBLE);
		 tvSoDd.setText("Dự Đoán Số " + couple+", "+name);
		 
		 tvTong.setText("Tổng "+ Util.SumCouple(couple));
		 tvDau.setText("Đầu " + couple.substring(0,1));
		 tvDuoi.setText("Đuôi " + couple.substring(1,2));
		 
		 tvDau1.setText("Tổng số lần Lô xuất hiện");
		 tvDau2.setText("Ngày hôm qua");
	 	 tvDuoi1.setText("Tổng số lần Lô xuất hiện");
		 tvDuoi2.setText("Ngày hôm qua");
		 tvTong1.setText("Tổng số lần Lô xuất hiện");
		 tvTong2.setText("Ngày hôm qua");

		 tvCountXh.setText(doso_item.getCountxh() +" lần");
		 tvDate.setText(doso_item.getDate());
		 tvNhip.setText(doso_item.getNhip());
		 
		 tvXhDau30.setText(doso_item.getXhdau30() + " lần");
		 tvLastDateDau30.setText(doso_item.getLastdatedau30());
		 tvXhDuoi30.setText(doso_item.getXhduoi30() + " lần");
		 tvLastDateDuoi30.setText(doso_item.getLastdateduoi30());
		 tvXhTong30.setText(doso_item.getXhtong30() + " lần");
		 tvLastDateTong30.setText(doso_item.getLastdatetong30());
		 

		Button btCancel = (Button) kqds_dl.findViewById(R.id.btCancel);
		btCancel.setOnClickListener(new View.OnClickListener() {

			public void onClick(View v) {
				kqds_dl.dismiss();
			}
		});
		btThongkeLT.setOnClickListener(new OnClickListener() {
			@Override
			public void onClick(View v) {

			llTK30day.setVisibility(View.VISIBLE);
			llNhip.setVisibility(View.VISIBLE);
			btThongkeLT.setBackgroundResource(R.drawable.tk_tab1_2);
			 btThongkeDB.setBackgroundResource(R.drawable.tk_tab2);
			tvDau1.setText("Tổng số lần xuất hiện");
			tvDau2.setText("Ngày hôm qua");
			tvDuoi1.setText("Tổng số lần xuất hiện");
			tvDuoi2.setText("Ngày hôm qua");
			tvTong1.setText("Tổng số lần xuất hiện");
			tvTong2.setText("Ngày hôm qua");
			
			 tvCountXh.setText(doso_item.getCountxh() + " lần");
			 tvDate.setText(doso_item.getDate());
			 tvNhip.setText(doso_item.getNhip());
			 
			 tvXhDau30.setText(doso_item.getXhdau30() + " lần");
			 tvLastDateDau30.setText(doso_item.getLastdatedau30());
			 tvXhDuoi30.setText(doso_item.getXhduoi30() + " lần");
			 tvLastDateDuoi30.setText(doso_item.getLastdateduoi30());
			 tvXhTong30.setText(doso_item.getXhtong30() + " lần");
			 tvLastDateTong30.setText(doso_item.getLastdatetong30());
			}
		});
		btThongkeDB.setOnClickListener(new OnClickListener() {
			public void onClick(View v) {
				
				llTK30day.setVisibility(View.GONE);
				llNhip.setVisibility(View.GONE);
				btThongkeLT.setBackgroundResource(R.drawable.tk_tab1);
				btThongkeDB.setBackgroundResource(R.drawable.tk_tab2_2);
				
				tvDau1.setText("Số ngày chưa ra");
				tvDau2.setText("Ngày về gần nhất");
				tvDuoi1.setText("Số ngày chưa ra");
				tvDuoi2.setText("Ngày về gần nhất");
				tvTong1.setText("Số ngày chưa ra");
				tvTong2.setText("Ngày về gần nhất");

				 tvXhDau30.setText(doso_item.getDauchuara() + " ngày");
				 tvLastDateDau30.setText(doso_item.getDaungaygannhat());
				 tvXhDuoi30.setText(doso_item.getDuoichuara()+ " ngày");
				 tvLastDateDuoi30.setText(doso_item.getDuoingaygannhat());
				 tvXhTong30.setText(doso_item.getTongchuara()+ " ngày");
				 tvLastDateTong30.setText(doso_item.getTongngaygannhat());

			}
		});
		
		
	}
}
